package com.xhui.vimarket.zkplus.utils.file;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.zkoss.util.media.Media;

import com.xhui.vimarket.common.utils.file.ExcelUtil;
import com.xhui.vimarket.zkplus.utils.MessageBox;

public class FileUtils {
    
    /**
     * 从Excel文件得到二维数组，每个sheet的第一行为标题.
     * 
     * @param media Excel文件
     * @return String String
     * @throws Exception Exception
     */
    
    public static String[][] readExcel(final Media media) throws Exception {
        return FileUtils.readExcel(media, 1);
    }
    
    /**
     * 方法功能:
     * 直接输入需要忽略的行数 .
     * @param media media
     * @param ignoreRows ignoreRows
     * @return String[][] String
     * @throws Exception Exception
     * @author: Liuzhuangfei
     * @修改记录： 
     * ==============================================================<br>
     * 日期:2011-2-10 Liuzhuangfei 创建方法，并实现其功能
     * ==============================================================<br>
     */
    public static String[][] readExcel(final Media media, final int ignoreRows) throws Exception {
        final String format = media.getFormat().toLowerCase();
        if (!format.equals("xls") && !format.equals("xlsx") && !"msexcel".equals(format)) {
            MessageBox.alert("对不起，只能导入excel文件！");
            return null;
        }
        Workbook wb = null;
        if (format.equals("xls") || format.equals("msexcel")) {
            wb = new HSSFWorkbook(media.getStreamData());
        }
        if (format.equals("xlsx")) {
            wb = new XSSFWorkbook(media.getStreamData());
        }
        return ExcelUtil.readExcel(wb, ignoreRows);
    }
    
    /**
     * 方法功能:
     * 直接输入需要忽略的行数 .
     * @param media media
     * @param ignoreRows ignoreRows
     * @return String[][] String
     * @throws Exception Exception
     * @author: linzhiqiang
     * @修改记录： 
     */
    public static String[][] readExcel(final Media media, final int ignoreRows, int sheetNum)
        throws Exception {
        final String format = media.getFormat().toLowerCase();
        if (!format.equals("xls") && !format.equals("xlsx") && !"msexcel".equals(format)) {
            MessageBox.alert("对不起，只能导入excel文件！");
            return null;
        }
        Workbook wb = null;
        if (format.equals("xls") || format.equals("msexcel")) {
            wb = new HSSFWorkbook(media.getStreamData());
        }
        if (format.equals("xlsx")) {
            wb = new XSSFWorkbook(media.getStreamData());
        }
        return ExcelUtil.readExcel(wb, ignoreRows, sheetNum);
    }
    
}
